import org.apache.spark.{SparkConf, SparkContext}

object scala4216 {
  def main(args: Array[String]): Unit = {
    // 创建Spark配置
    val conf = new SparkConf()
      .setAppName("SubtractExample")
      .setMaster("local[*]")
    // 创建SparkContext
    val sc = new SparkContext(conf)

    try {
      // 创建RDD
      val rdd1 = sc.parallelize(List(('a', 1), ('b', 1), ('c', 1)))
      val rdd2 = sc.parallelize(List(('d', 1), ('e', 1), ('c', 1)))
      // 通过subtract()方法求rdd1和rdd2彼此的补集
      val result1 = rdd1.subtract(rdd2).collect()
      val result2 = rdd2.subtract(rdd1).collect()

      println("rdd1相对于rdd2的补集:")
      result1.foreach(println)
      println("\nrdd2相对于rdd1的补集:")
      result2.foreach(println)

    } catch {
      case e: Exception =>
        println(s"执行过程中出现异常: ${e.getMessage}")
    } finally {
      // 关闭SparkContext
      sc.stop()
    }
  }
}